
//2962.统计最大元素出现至少K次的子数组
class Solution {
    public:
        long long countSubarrays(vector<int>& nums, int k) {
            //先找到最大元素，再进行滑动窗口找恰好满足的位置
            int themax=INT_MIN;
            for(auto e:nums)
            if(e>themax) themax=e;
    
            int count=0; //统计最大元素的个数
            int n=nums.size(),left=0;
             long long ret=0;
            for(int right=0;right<n;right++)
            {
                if(nums[right]==themax) count++;  
                while(count==k)
                    if(nums[left++]==themax) count--;  //出窗口
    
                ret+=left;  //更新答案
            }
            return ret;
        }
    };